﻿using BBCode.Nodes;
using BBCode.Tags;
using BBCode.Tags.BBCodeTags;
using BBCodeComplex = BBCode.Tags.BBCodeComplex;

namespace BBCodeTestWebsite.SampleCode
{
    /// <summary>
    /// Summary description for BBCodeTagFactory
    /// </summary>
    public class BBCodeTagFactory
    {
        public static BBCodeComplex Quote = new BBCodeComplex("quote", "Quote.html");
        public static BBCodeComplex Align = new BBCodeComplex("align", "Align.html");
        public static BBCodeComplex Color = new BBCodeComplex("color", "Color.html");
        public static BBCodeComplex Size = new BBCodeComplex("size", "Size.html");
        public static BBCodeComplex Url = new BBCodeComplex("url", "Url.html");
        public static BBCode.Tags.BBCode Bold = new BBCode.Tags.BBCode("b", "Bold.html");
        public static BBCode.Tags.BBCode Code = new BBCode.Tags.BBCode("code", "Code.html", false, 1000);
        public static BBCode.Tags.BBCode Strike = new BBCode.Tags.BBCode("strike", "Strike.html");
        public static BBCode.Tags.BBCode Underline = new BBCode.Tags.BBCode("u", "Underline.html");
        public static BBCode.Tags.BBCode Italic = new BBCode.Tags.BBCode("i", "Italic.html");
        public static BBCode.Tags.BBCode H1 = new BBCode.Tags.BBCode("h1", "H1.html");
        public static BBCode.Tags.BBCode H2 = new BBCode.Tags.BBCode("h2", "H2.html");
        public static BBCode.Tags.BBCode H3 = new BBCode.Tags.BBCode("h3", "H3.html");
        public static BBCode.Tags.BBCode Preformated = new BBCode.Tags.BBCode("pre", "Preformated.html");
        public static BBCode<BBCodeYoutube> Youtube = new BBCode<BBCodeYoutube>("youtube", "Youtube.html");
        public static HorizontalRuler HorizontalRuler = new HorizontalRuler("hr", "HorizontalRuler.html");
        public static BBCodeComplex Image = new BBCodeComplex("img", "Image.html");
        public static BBCodeComplex Thumbnail = new BBCodeComplex("thumb", "Thumb.html");


        //Lists
        private static BBCodeComplex ListForListItem = new BBCodeComplex("list", "List.html");
        public static List List = new List("list", "List.html",
                                           new ListItem("*", "ListItem.html",
                                                        new ITag[] {Code, ListForListItem, Quote}));
    }
}

